home *** CD-ROM | disk | FTP | other *** search
-
- const sThisVersion = 0.4;
- const sProdName = "bandwidthtest"
- const iRand = Math.round(Math.random() * 200);
- const sRdfUri = "http://jgillick.nettripper.com/plugins.rdf?p="+ sProdName +"&rand="+ iRand;
- const sProductUri = "http://jgillick.nettripper.com/rdf/"+ sProdName;
- const sDialogUrl = "chrome://"+ sProdName +"/content/update_dialog.xul"
- const sDownloadSite = "jgillick.nettripper.com/"+ sProdName +"/";
-
- function bandwidthtest_autoUpdate(){
- try{
- //Alert User
- var oPrefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch("");
- if(!oPrefs.prefHasUserValue(sProdName +".update.notify") || oPrefs.getBoolPref(sProdName +".update.notify")){
-
- //Has 24 hours past since last notification
- var iYesterday = ((new Date()).getTime() / 1000) - 86400;
- if( (!oPrefs.prefHasUserValue(sProdName +".update.notify.time") || oPrefs.getIntPref(sProdName +".update.notify.time") <= iYesterday)
- && (sXpi = bandwidthtest_needsUpgrade()) != false){
-
- //Update timestamp
- oPrefs.setIntPref(sProdName +".update.notify.time", ((new Date()).getTime() / 1000));
-
- //Show Notification Dialog
- window.openDialog(sDialogUrl, sProdName +"Update","centerscreen, chrome, modal", sXpi.Value);
- }
-
- }
-
- }catch(err){}
- }
-
- //If there is a new version, returns the XPI url, else returns false
- function bandwidthtest_needsUpgrade(){
-
- try{
- // Get current version and XPI from remote RDF
- var oRdf = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
- var oDs = oRdf.GetDataSourceBlocking(sRdfUri);
- var oProduct = oRdf.GetResource(sProductUri);
-
- var sVersion = oDs.GetTarget(oProduct, oRdf.GetResource("http://jgillick.nettripper.com/rdf#version"), true);
- var sXpi = oDs.GetTarget(oProduct, oRdf.GetResource("http://jgillick.nettripper.com/rdf#xpi"), true);
-
- //Not literals
- if( !(sVersion instanceof Components.interfaces.nsIRDFLiteral)
- || !(sXpi instanceof Components.interfaces.nsIRDFLiteral)){
- return false;
- }
- //No Update
- else if(sThisVersion >= sVersion.Value){
- return false
- }
- else{
- return sXpi;
- }
- }catch(err){ return false; }
- }
-
- //The user selects to check for updates
- function bandwidthtest_manualUpgradCheck(){
-
- var sXpi = bandwidthtest_needsUpgrade();
-
- if(sXpi != false){
- if(confirm("An upgrade exists.\nWould you like to install it now?")){
- try{
- var aInstall = new Array();
- aInstall[sProdName] = sXpi;
- InstallTrigger.install(aInstall, null);
-
- }catch(err){ alert("An error occurred") }
- }
- }
- else{
- alert( "No upgrades currently exist" );
- }
-
- }